1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular, to a computer implemented method for managing applications in data processing systems. Still more particularly, the present invention relates to a computer implemented method, system, and computer usable program code for deploying directory instances in a data processing environment.
2. Description of the Related Art
Many applications execute in a data processing environment in a distributed form. Distributed applications are software applications whose components can be executed on more than one data processing system across a network such that, to a user, all components appear to be working in unison as a complete application. For example, a user using a web-browser may access a website served by a web server. However, the content on that page may come from one or more databases, one or more applications executing on one or more application servers, and software components residing on the user's own computer. To the user, however, the webpage on the web-browser appears to have resulted from a single origin.
Another aspect of distributing applications is cloning some of the distributed components. Cloning a component is creating and executing more than one instances of the component. An instance is a copy, and an instance of a software or a component thereof is a copy of the software or the component. Often, among other uses, executing multiple instances of a component allow a user to increase the performance of the software application. For example, more instances may be handle more requests directed to the application simultaneously.
Often, cloning includes creating copies of not just the component but also of all or part of the data used by the component. As a part of the cloning process, data may be copied, or cloned, from an existing instance to another instance. The existing instance, from which the data is copied, is called a source instance. The instance to which the data is copied is called a target instance.
When cloned components and data exist in a data processing environment, the cloned components may have to be synchronized with each other. Synchronization involves ensuring that the various distributed components are up to date in relation with other components in the data processing environment. Synchronizing one instance may include copying, matching, updating, or modifying the information being synchronized in accordance with similar information in other instances. Synchronization of cloned components may also ensure that the data in some cloned components does not become obsolete, or the some components do not become out of step with other components.
A directory server implementing the lightweight directory access protocol (LDAP) is an example of a software that may be distributed and cloned in this manner. A directory is a hierarchical arrangement of information pertaining to users and systems in an organization. A directory server is a server in a data processing environment that provides a directory service. A directory service is a process by which a user in the data processing environment can retrieve details of a user or system from a directory server by providing a name of the user or system.
Directory servers may serve directories that are arranged according to a standard. One such standard is LDAP, which specifies a particular way of hierarchically organizing user information in a directory. A directory may be implemented using a standard, a variation of the standard, or by using a proprietary hierarchy. For example, a directory may be implemented using an X.500 directory server, which implements a directory standard of that name. A directory may also be implemented using a name server, or a user location service server (ULS server).